<?php
// -----------------------------------------------------
// Created by : tool
// -----------------------------------------------------
// Date: 2021/5/24
// -----------------------------------------------------
// Time: 14:17
// -----------------------------------------------------
// User: tf <1096392101@qq.com>
// -----------------------------------------------------
declare (strict_types=1);

namespace Gao\orm\db;

use PDO;
use PDOStatement;

interface ConnectionInterface
{
    /**
     * 连接数据库方法
     * @access public
     * @param array   $config  接参数
     * @param integer $linkNum 连接序号
     * @return mixed
     */
    public function connect(array $config = [], $linkNum = 0);

    /**
     * 执行数据库事务
     * @access public
     * @param callable $callback 数据操作方法回调
     * @return mixed
     */
    public function transaction(callable $callback);

    /**
     * 启动事务
     * @return void
     */
    public function startTrans(): void;

    /**
     * 事务提交
     * @return void
     */
    public function commit(): void;

    /**
     * 回滚一个事务
     * @return void
     */
    public function rollBack(): void;
}